package com.wanxi.udp.demo2单播持续发送数据;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

/**
 * 演示控制台可以循环输入数据，发送给接收端，以886为结束
 */
public class UDPSend886 {
    public static void main(String[] args) throws IOException {
        System.out.println("发送数据端启动");
        //1 创建发送的socket-找码头
        DatagramSocket socket = new DatagramSocket();
        //2 创建控制台输入流对象
        Scanner scanner = new Scanner(System.in);
        //3 循环接收控制台的数据数据
        while (true) {
            System.out.println("请输入你要发送的内容");
            String message = scanner.next();
            //4 判断是不是输入的886，如果是，则退出，否则发送数据
            if ("886".equals(message)) {
                break;
            } else {
                byte[] bytes = message.getBytes();
                //5 创建发送的数据包-打包礼物
                // 参数说明:发送消息的字节数组，发送消息的偏移量，发送消息的长度，地址，端口
                DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length,
                        InetAddress.getByName("127.0.0.1"), 20000);

                //6 发送数据包-由码头发送包裹
                socket.send(datagramPacket);
            }
        }

        //7 关闭socket
        socket.close();
        System.out.println("发送端退出了");
    }
}

